home *** CD-ROM | disk | FTP | other *** search
-
- #include "CIncludesCode.h"
- #include <Files.h>
- #include <OSUtils.h>
- #include <StdIO.h>
- #include <Memory.h>
-
- void fdisplay( char *s )
- {
- char c;
-
- while ( c = *s++ )
- if ( c <= 32 )
- fprintf( stderr, "%d ", c );
- else
- fprintf( stderr, "%c ", c );
- }
-
- Boolean equalStringsUncased( char *s1, char *s2 )
- {
- char c1, c2;
-
- while ( *s1 )
- {
- c1 = *s1++;
- c2 = *s2++;
- if ( c1 != c2 )
- {
- c1 &= 0xDF;
- c2 &= 0xDF;
- if ( (c1 < 'A') ||
- (c1 > 'Z') ||
- (c1 != c2) )
- return false;
- }
- }
- return ( *s1 == *s2 );
- }
-
-
- Boolean isString( char *p, char *q )
- { // p is pointer to text chars; q is pointer to C string.
- // returns true if chars at p equal chars at q.
-
- for ( ; *q != '\0'; ++q, ++p )
- if ( *q != *p )
- return false;
- return true;
- }
-
-
- Handle loadDataFile( char *filename )
- {
- short fileid;
- long filesize;
- OSErr error;
- Handle dataHdl = 0;
- Str255 s;
-
- strcpy( s, filename );
- c2pstr( s );
-
- if ( !( error = FSOpen( s, 0, &fileid ) ) )
- {
- if ( !( error = GetEOF( fileid, &filesize ) ) )
- if ( dataHdl = NewHandle( filesize + 1 ) )
- error = FSRead( fileid, &filesize, *dataHdl );
- else
- error = -1;
-
- (void) FSClose( fileid );
- }
-
- if (error)
- errorExit( "Error loading source file!" );
-
- *(*dataHdl + filesize) = '\n';
- return dataHdl;
- }
-
-
- void copyNames( char *dest, char *src )
- { // extracts C filename from C pathname
-
- char *s = strrchr( src, (int) ':');
- char *d = dest;
-
- ++s;
- while ( *s )
- *d++ = *s++;
-
- *d = '\0';
- }
-
-
- void errorExit( char *s )
- {
- fprintf( stderr, "%s\n", s );
- SysBeep(1);
- exit(2);
- }
-
-
- void checkMemory()
- {
- OSErr err = MemError();
-
- if ( err )
- {
- fprintf( stderr, "Memory Operation Failed: %d\n", err );
- SysBeep(1);
- exit(2);
- }
- }
-
-
- short getShort( char *p )
- {
- union shortUnion n;
-
- n.cc[0] = *p++;
- n.cc[1] = *p;
- return ( n.vv );
- }
-
-
- long getLong( char *p )
- {
- union longUnion n;
-
- n.cc[0] = *p++;
- n.cc[1] = *p++;
- n.cc[2] = *p++;
- n.cc[3] = *p;
- return ( n.vvvv );
- }
-
-
-
- void putShort( char *dest, short value )
- {
- union shortUnion n;
-
- n.vv = value;
- *dest++ = n.cc[0];
- *dest = n.cc[1];
- }
-
-
- void putLong( char *dest, long value )
- {
- union longUnion n;
-
- n.vvvv = value;
- *dest++ = n.cc[0];
- *dest++ = n.cc[1];
- *dest++ = n.cc[2];
- *dest = n.cc[3];
- }
-
-
- short dictionaryIndex( char ch )
- {
- if ( ch == '_' )
- return 0;
- else
- return ( (ch & 0xDF) - '@' );
- }
-
- Boolean validStart( char c )
- {
- return ( (c == '_') |
- ( (c >= 'A') && (c <= 'Z') ) |
- ( (c >= 'a') && (c <= 'z') ) );
- }
-
- Boolean validChar( char c )
- {
- return ( ( (c >= '0') && (c <= '9') ) |
- validStart( c ) );
- }
-
- int validate( char *s )
- {
- if ( (strlen( s ) > 63) || !validStart( *s ) )
- return 2;
- else
- for ( ++s; *s != '\0'; ++s )
- if ( !validChar( *s ) )
- return 2;
- return 0;
- }
-
-